package cn.iocoder.yudao.module.reading.controller.app.plan.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDate;

/**
 * 阅读计划 Response VO
 *
 * @author 芋道源码
 */
@Schema(description = "用户 APP - 阅读计划 Response VO")
@Data
public class ReadingPlanRespVO {

    @Schema(description = "计划ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "计划名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "家湖阅读计划")
    private String planName;

    @Schema(description = "计划类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "collection")
    private String planType;

    @Schema(description = "计划封面URL", example = "https://example.com/plan-cover.jpg")
    private String cover;

    @Schema(description = "每天学习数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    private Integer dailyCount;

    @Schema(description = "计划总绘本数", requiredMode = Schema.RequiredMode.REQUIRED, example = "60")
    private Integer totalBooks;

    @Schema(description = "预计完成天数", requiredMode = Schema.RequiredMode.REQUIRED, example = "30")
    private Integer estimatedDays;

    @Schema(description = "当前进行天数", requiredMode = Schema.RequiredMode.REQUIRED, example = "5")
    private Integer currentDay;

    @Schema(description = "已完成绘本数", requiredMode = Schema.RequiredMode.REQUIRED, example = "8")
    private Integer completedBooks;

    @Schema(description = "计划状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "active")
    private String status;

    @Schema(description = "开始日期", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024-01-01")
    private LocalDate startDate;

    @Schema(description = "结束日期", example = "2024-01-31")
    private LocalDate endDate;

    @Schema(description = "下次任务日期", example = "2024-01-06")
    private LocalDate nextTaskDate;

}
